package cn.lg.soar.database.query.annotations;

import cn.lg.soar.database.query.ConditionEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 字段配置
 * @author luguoxiang
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SoarQueryField {

    String value() default "";

    /**
     * 可查询的
     * @return
     */
    boolean querysable() default true;

    /**
     * 可作为条件搜索的
     * @return
     */
    boolean whereable() default true;

    /**
     * 可排序
     * @return
     */
    boolean sortable() default true;

    /**
     * 条件名单是否是黑名单，默认false
     * @return
     */
    boolean isBlacklist() default false;

    /**
     * 条件名单，默认白名单
     * @return
     */
    ConditionEnum[] conditions() default {};

}
